package 操作;

import redis.clients.jedis.Jedis;
import 实体.RedisPool;
import 实体.dbutils;
import 实体.会员卡;
import 实体.管理员;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

public class 管理员_操作 {

    public List<管理员> 查询all() throws SQLException{
        try {
            List<管理员> list=new ArrayList<>();
            Connection conn=dbutils.getCon();
            PreparedStatement stmt=null;
            ResultSet res=null;
            stmt=conn.prepareStatement("select * from 管理员");
            res=stmt.executeQuery();
            list=result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<管理员> 搜索(String input) throws SQLException{
        try {
            List<管理员> list = new ArrayList<>();
            Connection conn = dbutils.getCon();
            PreparedStatement stmt = null;
            ResultSet res = null;
            stmt = conn.prepareStatement("select * from  管理员  where 用户名=?");
            stmt.setString(1,input);
            res = stmt.executeQuery();
            list = result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<管理员> 删除(String input) throws SQLException{
        try {
            List<管理员> list = new ArrayList<>();
            Connection conn = dbutils.getCon();
            PreparedStatement stmt = null;
            ResultSet res = null;
            stmt = conn.prepareStatement("DELETE FROM 管理员 where 用户名 = ? ");
            stmt.setString(1,input);
            stmt.executeUpdate();
            stmt = conn.prepareStatement("select * from 管理员 ");
            res = stmt.executeQuery();
            list = result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<管理员> 增加(String[] input) throws SQLException{
        try {
            List<管理员> list=new ArrayList<>();
            Connection conn=dbutils.getCon();
            PreparedStatement stmt=null;
            ResultSet res=null;
            stmt=conn.prepareStatement("insert into 管理员(用户名,密码) value (?,?)");
            for (int i=0;i<input.length;i++){
                stmt.setString(i+1,input[i]);
            }
            stmt.executeUpdate();
            stmt=conn.prepareStatement("select * from 管理员");
            res=stmt.executeQuery();
            list=result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<管理员> 修改(String[] input) throws SQLException{
        try {
            List<管理员> list=new ArrayList<>();
            Connection conn=dbutils.getCon();
            PreparedStatement stmt=null;
            ResultSet res=null;
            stmt=conn.prepareStatement("update 管理员 set 用户名=?,密码=?");
            for (int i=0;i<input.length;i++){
                stmt.setString(i+1,input[i]);
            }
            stmt.executeUpdate();
            stmt=conn.prepareStatement("select * from 管理员");
            res=stmt.executeQuery();
            list=result(conn,stmt,res);
            dbutils.close(conn,stmt,res);
            return list;
        }catch (SQLException e){
            e.printStackTrace();
            return null;
        }
    }
    public List<管理员> result(Connection conn, PreparedStatement stmt, ResultSet res) throws SQLException {
        List<管理员> list=new ArrayList<>();
        try{
            while(res.next()){
                String 用户名=res.getString("用户名");
                String 密码=res.getString("密码");
                管理员 s=new 管理员(用户名,密码);
                list.add(s);
            }
        }catch(SQLException e){
            e.printStackTrace();
        }
        finally
        {
            dbutils.close(conn,stmt,res);
        }
        return list;
    }
}
